Resource-Type Weighting of Use Rights

ABSTRACT

Resource-type weighting is used in evaluating the use-rights associated with hardware resources.

This application claims priority from copending U.S. patent applicationSer. No. 11/742,656, filed 2007 May 1, of which this application is adivisional.

BACKGROUND OF THE INVENTION

Purchasers of computer systems who buy only enough hardware to meetcurrent average demand often face costly interruptions when upgradinghardware to meet increased demands. In a ‘limited-right-to-use” purchasemodel, a purchaser purchases a computer system with reserve computingpower, but pays for only a subset of the installed hardware and software(e.g., an operating system) until the rest is required, e.g., by futureincreases in demand. Refinements of this business model 1) allow a userto make temporary use of the reserve capacity to handle spikes indemand, 2) allow use rights to migrate among resources to facilitate areallocation of resources to workloads. Intra-server and inter-servermigration of use rights are addressed in copending patent applicationSer. Nos. 11/590,334 and 11/590,584.

Herein, related art is described to facilitate understanding of theinvention. Related art labeled “prior art” is admitted prior art;related art not labeled “prior art” is not admitted prior art.

BRIEF DESCRIPTION OF THE DRAWINGS

The figures depict implementations/embodiments of the invention and notthe invention itself.

FIG. 1 is a combination schematic diagram and flow chart in accordancewith embodiments of the invention.

FIG. 2 is a combination schematic diagram and flow chart in accordancewith other embodiments of the invention.

DETAILED DESCRIPTION

A server system AP1 comprises host resources HR1, and partitions P11 andP12 for running user workloads W11 and W12, as shown in FIG. 1. Whileserver system AP1 is a single housing with two or more partitions, theinvention applies to systems with partitions distributed among separatestandalone servers. While the illustrated partitions have particularhardware resources, the invention applies quite generally to diversesets of hardware resources.

Partition P11 includes processors PA1-PA4, memory modules MB1-MB4, andcommunications devices (e.g., network interface cards or host-busadapters for storage-array networks) CC1 and CC2. At the timerepresented in FIG. 1, processors PA1 and PA2, memory modules MB1 andMB2, and communications device C21 are active (A), while the remaininghardware resources are not active (N). Partition P21 includes processorsPD1-PD4, memory modules ME1-ME4, and communications devices CF1 and CF2.Processors PD1-PD3, memory modules ME1-ME3, and communications deviceC21 are active.

Host resources 11 run a number of platform management programs includinga request handler 13, a resource controller 15, a use rights calculator17, and a license tracking and accounting program (license tracker) 18.License tracker 18 stores data regarding existing license rights.Included with license tracker 18 is a table 19 of weighting coefficientsfor different types of hardware resources, for example, type Aprocessors (e.g., processors PA1-PA4) have a 1.0 weighting coefficient,while type D processors (e.g., processors PD1-PD4) have a weightingcoefficient of 2.0. This means, for example, that the license rightsconsumed when a D-type processor is activated are double those consumedwhen an A-type processor is activated. In addition, license tracker 18monitors hardware usage and charge usage according to licensing terms(which can include prepaid temporary license rights and pay-as-you-goterms).

Request handler 13 handles manual and automated requests for changingresource levels on a permanent or temporary basis. For example, a usercan request that an additional processor be permanently activated forpartition P11. Request handler 13 determines whether or not a processoris available for partition P11 and determines whether the necessary userights were prepaid or, if not, whether they could be charged orpurchased. Request handler 13 can communicate with a vendor system topurchase additional use rights as specified by a configuration file forrequest handler 13.

Request handler 13 calls use rights calculator 17 to determine whetheravailable rights are sufficient for meeting a request to activateresources. Use rights calculator 17 uses the weighting coefficientstable to make this determination. The calculator can determine fromlicense tracker 18 the total amount of rights available and the totalamount currently used and then determine whether the difference issufficient to allow the resource request to be met. If the rights arenot sufficient, the requestor is so notified. If the rights aresufficient, request handler commands resource controller 15 to activateresources as required. The change in activation is recognized by licensetracker 18, which handles any necessary accounting changes.

A method ME1 executed by server system AP1 is flow charted in FIG. 1.Method segment M11 involves a resource allocation action such as animplementation of a change in resource allocation or a request for thesame. Method segment M12 involves quantitatively evaluating licensestatus as the weighted sum of actual or planned active resources. Ifmethod segment M11 involved implementation of a change in resourceactivations, then method segment M12 can involve detecting the newconfiguration and reflecting it in accounting at method segment M13. Forexample, prepaid rights can be debited, or a charge account can becharged. If method segment M11 involves only an unimplemented request,method segment M12 provides for determining whether the request can bemet at method segment M14.

In the latter case, if the determination is that the request cannot bemet, the requestor is notified of the insufficiency at method segmentM15. Such a notice can allow the requestor to revoke the request or totake action (e.g., purchase additional use rights) to remedy theinsufficiency. If the determination is that the request can be met, thenew allocation can be implemented at method segment M16. Method ME1 canbe iterated whenever resource requirements change.

Resource activations can be permanent or temporary. Temporary resourceactivations can be terminated at a predetermined time or underpredetermined conditions, e.g., as specified in the request, or can beterminated by a separate request. A request to inactivate a temporarilyactivated resource can be implemented immediately at method segment M11,with the appropriate impact on accounting being recorded at methodsegment M13.

There are several useful scenarios for the invention. A user withprepaid rights can use them flexibly to purchase rights to differentclasses of devices (e.g., processors versus storage versuscommunications) and of different types (e.g., high performance versuslow performance) within a class. The ability to pool rights acrossdevices of the same class but different performance is particularlyapplicable for systems having components of different generations oftechnology.

The invention also has applicability to scenarios involving workloadmanagement, as it allows resources of one class or type to be exchangedfor resources of another class or type. For example, processing powercan be migrated from one workload to another even thought the workloadsrun on respective stand alone systems of different generations. In thiscase, a global workload manager can take the weighting coefficients intoaccount when assigning resources to workloads.

While migration of use rights among identical resources isstraightforward, migration of use rights between resources withdisparate capabilities can disrupt an intended correspondence betweenpricing and utility. The present invention applies use-rights weightingsto hardware resources to provide for flexible migration of use rightswhile maintaining a relatively constant relationship between utility andpricing.

In the example of FIG. 2, a server system AP2 includes servers S1 and S2and a management workstation MS1. Server S1 includes system-levelhardware on which workload management software WM1 is run, partitions,e.g., partition P1, on which workloads (e.g., workload WL1) are run, andreserved hardware R1 which is inactive due to use-rights limits. In analternative embodiment, workload management programs are run within thesame partitions and using the same resources as the workloads beingmanaged. At time T1, processors G1 and G2 are assigned to partition P1,while processors G3 and G4 are inactive and assigned to reserve R1.Similarly, server S2 includes system-level hardware on which workloadmanagement software WM2 is run, partitions for running workloads (e.g.,workload WL2 on partition P2), and reserve hardware R2. At time T1,partition P2 includes processors H1 and H2, while processors H3 and H4are in reserve R2.

While two standalone systems are shown in FIG. 1, the invention providesfor any number of standalone systems. For example, the invention appliesto a multi-partition monolithic system having two or more hard orvirtual partitions or virtual machines. In addition, greater numbers ofstandalone systems of varying capacities can be used.

Management workstation MW1 runs software, stored on computer-readablestorage media 21, for management system AP2 as a whole. In particular,global workload manager GM1 cooperates with server-specific workloadmanagers WM1 and WM2 to track utilization, performance, and load, andreallocate hardware resources to workloads as a function of thoseparameters according to management policies MP1.

Global workload manager GM1 implements a reallocation plan through localworkload managers WM1 and WM2, which are software agents. Workloadmanagers contribute to reallocation planning by gathering andcommunicating utilization (e.g., percent of available processing power),performance (e.g., time to handle a request), and load data (e.g.,quantity of requests received per second) to global workload managerGM1. In addition, workload managers WM1 and WM2 can trigger reallocationby communicating a request for additional resources (or an offer torelinquish resources) according to local management policies.

Global workload manager GM1 implements a method ME2. As shown in FIG. 2,system AP2 has an initial configuration at time T1 at method segmentM21. At method segment MS2 and time T2, global manager GM1 initiates anallocation planning session. An allocation planning sessions can occuron a periodic basis, or be triggered in response to a request foradditional resources or an offer to relinquish resources from eitherlocal workload manager WM1, WM2. Whenever a reallocation is to bedetermined, the total amount of use rights to be allocated must bedetermined as at method segment M22. In the present case, globalworkload manager GM1 refers to rights tracking software 23, which storescurrent licensing rights. In this case, rights tracker 23 indicates that6.0 use rights are available. Note that different rights values may beavailable for different classes of resources, e.g., processors, memory,and communications devices. Also, the invention provides for increasingor decreasing use rights based management policies at method segmentM22.

At method segment M22, the available hardware resources are weighted asset forth in weighting table WT1. Processors H1-H4 are rated at 1.0 userights each, while processors G1-G4 are rated at 2.0 use rights each. Inthis case, processors G1-G4 are more advanced and more highly rated thanprocessors H1-H4. Thus, one G-type processor can be exchanged for twoH-type processors without affecting the total use rights available. Forexample, to shift processing power from partition P1 to partition P2,processor G2 can be activated and processors H3 and H4 can be added topartition P2. Once the resource equivalencies are established, resourceallocation to workloads can be determined at method segment M23. Thecriteria are determined by the management policies. Once an allocationis determined it can be implemented at method segments M23-M25,resulting in the configuration shown for time T3 in FIG. 1.

Method segments M23-M25 can be ordered to avoid exceeding license rightsat any instant. Where this is not a concern, method segments can beperformed in other order. At method segment MS3, hardware resources thatare planned for deactivation or deactivated so that use rightsassociated therewith are available for transfer.

Depending on the selection of weightings, it can be difficult to performan “even-up” migration, e.g., one in which the amount of use rightsreleased exactly matches the newly consumed use rights. For example, ifresource J has a 1.0 weighting and resource K has a 1.1 weighting, thenreleasing 11 instances of resource permits 10 instances of resource K tobe added with no “left-over” use rights. However, smaller migrations ofresource J to resource K will leave some remainder. For example,releasing five instances of resource J will permit four instances ofresource K to be added, with 0.6 use rights units left unutilized.

Depending on the business model, the unused rights might lead to a costreduction, or might not. If there is no cost reduction, managementpolicies may bias against allocations that use paid-for use rightsinefficiently. On the other hand, the presence of unused use rights maymake some reallocation more attractive than they otherwise might be. Forexample, if in the example with type J and type K use rights, if therewere 0.1 unused use rights, then a release of only one type J resourcewould permit a full type K resource to be added.

The resources can be processors, storage (including memory anddisk-based storage), and communications devices (including I/O devicesand network interfaces). For each of the classes of resources, there canbe subclasses, e.g., floating-point versus general-purpose processors,solid-state storage versus disk storage, and computer network bandwidthversus storage-array network bandwidth. Units can be in terms of clockrates, numbers of cores, storage capacity, and transfer rates.

The invention provides for different partitioning technologies includinghard partitions, virtual partitions, and virtual machines. Sometechnologies allow finer allocations of hardware resources, e.g.,fractional processors can be assigned to a workload. This capability canalso be used to minimize unused use rights.

Herein, “software agents” are computer programs, and a computer“workload” is a program or set of programs. Herein, a “computer program”or more simply a “program” is an ordered set of instructions tangiblyembodied in computer-readable storage media and interpretable andexecutable by a central processing unit. Herein, “program” does notencompass purely abstract ideas, natural phenomena, or laws of nature. A“program set” is a set of one or more programs. All programs describedherein effect changes in state in computer-readable memory.

“Use rights”, as the phrase is used herein, refers to a user's rights touse specific hardware and software resources. “Limited use rights” and“limited rights to use” and “right-to-use limitations” all refer tosituations in which there is hardware and/or software installed within acomputer system for which a user does not have use rights, but for whichuse rights may generally be obtained, either permanently or temporarilyat some cost or under some conditions.

“Computer-readable media” refers to media that can be accessed by acomputer and includes volatile and nonvolatile, removable andnon-removable media. By way of example, and not limitation,computer-readable media may comprise computer storage media andcommunication media. “Computer storage media” includes volatile andnonvolatile, removable and non-removable media implemented in any methodor technology for storage of information such as computer-readableinstructions, data structures, program modules or other data.

“Computer storage media” encompasses, but is not limited to, randomaccess memory (RAM), read-only memory (ROM), Electrically-ErasableProgrammable Read-Only Memory (EEPROM), flash memory or other memorytechnology, compact disc read-only memory (CDROM), digital versatiledisks (DVD) or other optical disk storage, magnetic cassettes, magnetictape, magnetic disk storage or other magnetic storage devices, or anyother medium which can be used to store the desired information andwhich can be accessed by computer.

“Communication media” encompasses computer readable instructions, datastructures, program modules or other data in a modulated data signalsuch as a carrier wave or other transport mechanism and includes anyinformation delivery media. The term “modulated data signal” means asignal that has one or more of its characteristics set or changed insuch a manner as to encode information in the signal. By way of example,and not limitation, communication media includes wired media such as awired network or direct-wired connection, and wireless media such asacoustic, radio frequency (RF), infrared, and other wireless media.Combinations of any of the above should also be included within thescope of “computer-readable media”.

In system AP1, hardware resource reallocations are determined inaccordance with management policies MP1, which are user configurable.Management policies MP1 determine what factors are to be considered inallocating hardware resources and what ranges of allocations arepossible. For example, management policies can require a minimumhardware configuration for a partition even under idle conditions, amaximum hardware configuration under full utilization, and variousintermediate configurations. Management policies MP1 can require thatthe current use rights limitations be met by any reallocation.Alternatively, management policies can specify conditions under whichuse rights can be automatically increased (e.g., by an automatedlicensing arrangement) or decreased. These and other variations upon andmodifications to the illustrated embodiment are provided by the presentinvention, the scope of which is defined by the following claims.

What is claimed is:
 1. Computer-readable media comprising: a weightingstable for assigning use-right weightings to hardware types so that somehardware types are assigned greater weights than other hardware types.2. Computer-readable media as recited in claim 1 further comprisingmeans for assigning costs to temporary hardware activations as afunction of said weightings.
 3. Computer-readable media as recited inclaim 1 further comprising a workload manager for reallocating hardwareresources to workloads so that a quantity of hardware resources assignedto said workloads changes proportionally more than the quantity of userights assigned to said workloads.
 4. Computer-readable media as recitedin claim 3 wherein said workload manager reallocates said hardwareresources without changing the quantity of said use rights. 5.Computer-readable media as recited in claim 3 wherein said workloadmanager changes the quantity of use rights when reallocating saidhardware resources.
 6. Computer-readable media as recited in claim 3wherein said workload manager changes the quantity of use rights whenreallocating said hardware processors by an amount less than leastamount of use rights associated with a single processor. 7.Computer-readable media as recited in claim 3 wherein said workloadmanager managers hardware resources on separate first and secondstandalone computer systems.
 8. Computer-readable media as recited inclaim 7 wherein processors on said first computer system have adifferent nominal performance than the processors on said secondstandalone computer system.
 9. A method comprising assigning use-rightsweightings to hardware resources in a computing system.
 10. A method asrecited in claim 9 further comprising assigning a cost to a temporaryactivation of hardware at least in part as a function of saidweightings.
 11. A method as recited in claim 10 further comprisingreallocating hardware resources to workloads while transferring userrights from a first quantity of resources of a first resource type to adifferent quantity resources of a second resource type.
 12. A method asrecited in claim 10 wherein said reallocating does not involve changingthe amount of use rights.
 13. A method as recited as recited in claim 12wherein said reallocating involves changing the amount of use rights inaccordance with management policies.
 14. A method as recited in claim 13wherein said reallocating involves a change in use rights costs.
 15. Amethod as recited in claim 13 wherein said reallocating does not involvea change in use rights costs.
 16. A method as recited in claim 11wherein said hardware resources include processors with differentperformance ratings, said different performance ratings being associatedwith different use-right weightings.
 17. A method as recited in claim 11wherein said reallocating involves deactivating hardware resources inone standalone computing system and activating hardware resources in adifferent standalone computing system.
 18. A method as recited in claim17 wherein the quantity of processors deactivated is not the same as thenumber of processors activated, while the quantity of use rights isunchanged from before said reallocation.
 19. An allocation methodcomprising: performing at least one action of a set consisting ofrequesting and implementing an allocation of active computer hardwareresources of different types to server partitions, said types includingat least first and second resource types; evaluating a license status ofsaid allocation of resources as a weighted sum of said resources whereinweightings vary by resource type, said first resource type having adifferent weighting than said second resource type; if said performinginvolves requesting, implementing said allocation if and only if saidevaluating indicates said license status is sufficient to accommodatesaid allocation; and if said performing involves implementing prior tosaid evaluation, charging an account according to the evaluated licensestatus.
 20. A method as recited in claim 19 wherein said first typeincludes processors sharing a first performance specification and saidsecond type includes processors sharing a second performancespecification different from said first performance specification.